$(function(){
    /*
    * V04实现了解析ksc格式的动感歌词并顺利实现播放，更换lrc格式的歌词
    * **/

    /*
    *通过调整C位和Offset已经行高来调节歌词的显示
    * */


    //歌词头*******************************************************************************************
    let lrc="";
    let rowF=false;
    //当前播放音量大小
    let currentVoicePercent=0.5;
    //记录上一首播放音乐的位置
    let temp_pos=-1;
    //处理歌词
    let lineNo=-1;//当前行
    let C_pos=0;//C位，超过C位就滚动
    let offset=-20;//滚动距离（应等于行高）
    let oLRC = {
        ti: "", //歌曲名
        ar: "", //演唱者
        al: "", //专辑名
        by: "", //歌词制作人
        offset: 0, //时间补偿值，单位毫秒，用于调整歌词整体位置
        //ms: [] //歌词数组{t:时间,c:歌词}
        ms:{
            t:[],
            c:[]
        }
    };
    //用""取代重复的字符
    function replaceOf(str,old,n){
        for (let i=1;i<=n;i++){
            str=str.replace(old,"");
        }
        return str;
    }
    //解析歌词每个字的开始时间
    //秒.毫秒
    function startTimeOperator(time1,time2){
        let millisecond,second;
        let timeList=time1.split(".");
        let time1Second=parseInt(timeList[0]);
        let time1Millisecond=parseInt(timeList[1]);
        let time2Millisecond=parseInt(time2);
        let totalMillisecond=time1Millisecond+time2Millisecond;
        if(totalMillisecond>=1000){
            millisecond=totalMillisecond%1000;
            let count=Math.floor(totalMillisecond/1000);
            time1Second+=count;
        }else{
            millisecond=totalMillisecond;
        }
        second=time1Second;
        let time=parseFloat(second+"."+millisecond).toFixed(3);
        return time;
    }
    //解析时间格式为秒.毫秒
    function parseTime(timeArg){
        let timeArr=timeArg.split(":");
        let time=(parseFloat(timeArr[0])*60+parseFloat(timeArr[1])).toFixed(3);
        return time;
    }
    //将歌词拆解封装在oLR对象中
    function createLrcObj(lrcs) {
        if(lrcs.length==0) return;
        let lrcList = lrcs.split('\n');//用回车拆分成数组
            //lrcList.length =lrcList.length-1;//删除末尾一行空格
        let singer=[];//放歌曲名、歌手、专辑、歌词制作人
        let multiLineWorldList=[];//盛放多行字数组
        let multiLineTimeList=[];//盛放多行时间数组
        for(let i in lrcList) {//遍历歌词数组
            let arc=lrcList[i].trim().replace("karaoke.add(","").replace(")","");
            if(arc.includes("ti") || arc.includes("ar") || arc.includes("al") || arc.includes("by")){
                let temp=arc.split(":")[1]
                let singerInfo=temp.substring(0,temp.length-1);
                singer.push(singerInfo);
            }else{
                arc=replaceOf(arc,"\'",8);
                let lrcContentTimeList=arc.split(",");

                let startTime=parseTime(lrcContentTimeList[0]);
                let endTime=parseTime(lrcContentTimeList[1]);
                let oneLineTimeList=[startTime];//盛放单行时间数组

                for(let t=3;t<lrcContentTimeList.length-1;t++){
                    startTime=startTimeOperator(startTime,lrcContentTimeList[t]);
                    oneLineTimeList.push(startTime);
                }
                oneLineTimeList.push(endTime);
                multiLineTimeList.push(oneLineTimeList);
                //处理歌词文字
                let lrcContent=lrcContentTimeList[2].trim();
                let worldList=lrcContent.split("");
                let oneLineWorldList=[];  //盛放单行字的数组
                for (let i in worldList){
                    if(worldList[i]=="[" || worldList[i]=="]"){
                        continue;
                    }
                    oneLineWorldList.push(worldList[i]);
                }
                multiLineWorldList.push(oneLineWorldList);
            }
        }
        oLRC.ti=singer[0];
        oLRC.ar=singer[1];
        oLRC.al=singer[2];
        oLRC.by=singer[3];
        oLRC.ms.c=multiLineWorldList;
        oLRC.ms.t=multiLineTimeList;
        return oLRC;
    }
    //显示歌词
    function showLRC() {
        let s="";
        s+=('<li>歌名:'+oLRC.ti+'</li>');
        s+=('<li>歌手:'+oLRC.ar+'</li>');
        s+=('<li>专辑:'+oLRC.al+'</li>');
        s+=('<li>词人:'+oLRC.by+'</li>');
        for(let i=0;i<oLRC.ms.c.length;i++){
            s+='<li>';
            for(let j=0;j<oLRC.ms.c[i].length;j++){
                s+=(oLRC.ms.c[i][j]!=" " ?  '<a>'+oLRC.ms.c[i][j]+'</a>' : '<a>&nbsp;&nbsp;</a>');
            }
            s+='</li>';
        }
        s+="<li>&nbsp;&nbsp;</li>";
        $("#lyric_bg").html(s);
        $("#lyric_fg").html(s);
        $("#lyric_fg li").not(':has("a")').addClass("transparentColor");
        $("#lyric_fg li a").addClass("transparentColor");
        $("#lyric_fg li a").addClass("distA");
        $("#lyric_bg li a").addClass("distA");
    }
    //回滚到开头，用于播放结束时
    function rollback(){
        $("#lyric_bg").css("transform","translateY(0)");
        $("#lyric_fg").css("transform","translateY(0)");
    }
    //清除歌词
    function clearLRC(){
        $("#lyric_bg").empty();
        $("#lyric_fg").empty();
        oLRC.ms=[];
        lineNo = -1;
        rowF=false;
    }
    //初始化歌词
    function initLRC(lrc){
        clearLRC();
        createLrcObj(lrc);
        showLRC();
    }

    //更新歌词------------------------------需要更新
    function updateLRCPro(){
        const audio=$("#audio")[0];
        const lrcList=oLRC.ms.c;
        for(let i=0;i<lrcList.length;i++){
            if(audio.currentTime<oLRC.ms.t[0][0]){
                //当前时间小于第一行第一个字的时间
                //lineNo=0;
                break;
            }else if(audio.currentTime>=oLRC.ms.t[i][0] && audio.currentTime<=oLRC.ms.t[i][oLRC.ms.t[i].length-1]){
                if(i!=lineNo){
                    lineNo=i;
                    if(lineNo>C_pos){
                        $("#lyric_bg").css("transform","translateY("+(lineNo-C_pos)*offset+"px)");
                        $("#lyric_fg").css("transform","translateY("+(lineNo-C_pos)*offset+"px)");
                    }
                    if(i!=0){
                        $("#lyric_fg li").slice(4,i+4).removeAttr("class");
                    }
                    $("#lyric_fg li").eq(i+4).addClass("changeFgColor");
                    $("#lyric_fg li:eq("+(i+4)+")").siblings().children("a").removeClass("coverColor").addClass("transparentColor");
                    $("#lyric_fg li").eq(i+4).children("a").addClass("coverColor");
                    rowF=false;
                }
                //若需要做播放到字体变大效果，则需改这部分功能代码------------
                let left=$(".changeFgColor").find(":first-child").position().left;
                let rightDis=(audio.currentTime-oLRC.ms.t[i][0])*lrcList[i].length*12/(oLRC.ms.t[i][oLRC.ms.t[i].length-1]-oLRC.ms.t[i][0]);
                let right=parseFloat(left)+parseFloat(rightDis+"");
                //clip:rect(0px,86px,20px,52px); top right bottom left
                $("#lyric_fg li").eq(i+4).css("clip","rect(0px,"+Math.ceil(right)+"px,20px,"+Math.ceil(left)+"px)");
                $("#lyric_fg li").eq(i+4).prevAll().css("clip","");
                break;
            }else if(i!=(lrcList.length-1) && oLRC.ms.t[i][oLRC.ms.t[i].length-1]< audio.currentTime && audio.currentTime<oLRC.ms.t[i+1][0]){
                //当前时间大于第n行最后一个字的时间并且小于第n+1行第一个字的时间
                //如果行号>C位行,则滚动
                if(!rowF){
                    let left=$(".changeFgColor").find(":first-child").position().left;
                    let rightDis=lrcList[i].length*12;
                    let right=parseFloat(left)+parseFloat(rightDis+"");
                    $("#lyric_fg li").eq(i+4).css("clip","rect(0px,"+Math.ceil(right)+"px,20px,"+Math.ceil(left)+"px)");
                    $("#lyric_fg li").eq(i+4).prevAll().css("clip","");
                    //lineNo++;
                    rowF=true;
                }
                /*
                if(lineNo>C_pos){
                    $("#lyric_bg").css("transform","translateY("+(lineNo-C_pos)*offset+"px)");
                    $("#lyric_fg").css("transform","translateY("+(lineNo-C_pos)*offset+"px)");
                }*/
                break;
            }else if(i==(lrcList.length-1) && audio.currentTime>oLRC.ms.t[i][oLRC.ms.t[i].length-1]){
                //当前时间超过最后一行最后一个字的结束时
                if(!rowF){
                    let left=$(".changeFgColor").find(":first-child").position().left;
                    let rightDis=lrcList[i].length*12;
                    let right=parseFloat(left)+parseFloat(rightDis+"");
                    $("#lyric_fg li").eq(i+4).css("clip","rect(0px,"+Math.ceil(right)+"px,20px,"+Math.ceil(left)+"px)");
                    $("#lyric_fg li").eq(i+4).prevAll().css("clip","");
                    rowF=true;//当播放结束时将rowF设置为false;
                }
            }
        }
    }

    /*更新歌词位置和样式*/
    function updateLrcLocation(){
        let audio=$("#audio")[0];
        let currentTime=audio.currentTime;
        for (let i = 0; i <oLRC.ms.t.length ; i++) {
            if(currentTime<oLRC.ms.t[0][0]){//当前时间小于第一行第一个字的开始时间时恢复初始样式
                lineNo=-1;
                rowF=false;
                rollback();
                $("#lyric_fg li").eq(3).nextAll().removeAttr("class");
                $("#lyric_fg li").eq(3).nextAll().children("a").removeClass("coverColor").addClass("transparentColor");
                break;
            }else if (currentTime>=oLRC.ms.t[i][0] && currentTime<=oLRC.ms.t[i][oLRC.ms.t[i].length-1]){//当前时间大于等于某行第一个字的开始时间并且小于等于最后一个字的结束时间
                $("#lyric_bg").css("transform","translateY("+i*offset+"px)");
                $("#lyric_fg").css("transform","translateY("+i*offset+"px)");
                //将当前行全部选中
                $("#lyric_fg li").eq(3).nextAll().removeAttr("class");//可以优化，取消上一个样式
                $("#lyric_fg li").eq(3).nextAll().children("a").removeClass("coverColor").addClass("transparentColor");//可以优化，取消上一个样式

                $("#lyric_fg li").eq(i+4).children("a").removeClass("transparentColor").addClass("coverColor");
                $("#lyric_fg li").eq(i+4).addClass("changeFgColor");
                let left=$(".changeFgColor").find(":first-child").position().left;
                let rightDis=(audio.currentTime-oLRC.ms.t[i][0])*oLRC.ms.c[i].length*12/(oLRC.ms.t[i][oLRC.ms.t[i].length-1]-oLRC.ms.t[i][0]);
                let right=parseFloat(left)+parseFloat(rightDis+"");
                $("#lyric_fg li").eq(i+4).css("clip","rect(0px,"+Math.ceil(right)+"px,20px,"+Math.ceil(left)+"px)");
                $("#lyric_fg li").eq(i+4).prevAll().css("clip","");
                //重新设置行号
                lineNo=i;
                rowF=false;
                break;
            }else if (currentTime>oLRC.ms.t[i][oLRC.ms.t[i].length-1] && currentTime<oLRC.ms.t[i+1][0] && i!=(oLRC.ms.t.length-1)){//当前时间大于某行的最后一个字的结束时间并且小于下一行第一个字的开始时间
                //回滚到当前行
                $("#lyric_bg").css("transform","translateY("+i*offset+"px)");
                $("#lyric_fg").css("transform","translateY("+i*offset+"px)");
                //将当前行全部选中
                $("#lyric_fg li").eq(3).nextAll().removeAttr("class");//可以优化，取消上一个样式
                $("#lyric_fg li").eq(3).nextAll().children("a").removeClass("coverColor").addClass("transparentColor");//可以优化，取消上一个样式

                $("#lyric_fg li").eq(i+4).children("a").removeClass("transparentColor").addClass("coverColor");
                $("#lyric_fg li").eq(i+4).addClass("changeFgColor");
                let left=$(".changeFgColor").find(":first-child").position().left;
                let rightDis=oLRC.ms.c[i].length*12;
                let right=parseFloat(left)+parseFloat(rightDis+"");
                $("#lyric_fg li").eq(i+4).css("clip","rect(0px,"+Math.ceil(right)+"px,20px,"+Math.ceil(left)+"px)");
                $("#lyric_fg li").eq(i+4).prevAll().css("clip","");
                //重新设置行号
                lineNo=i;
                rowF=true;
                break;
            }else if(currentTime>oLRC.ms.t[oLRC.ms.t.length-1][oLRC.ms.t[oLRC.ms.t.length-1].length-1]){//当前时间大于歌词最后一个字的结束时间
                //回滚到当前行
                $("#lyric_bg").css("transform","translateY("+(oLRC.ms.t.length-1)*offset+"px)");
                $("#lyric_fg").css("transform","translateY("+(oLRC.ms.t.length-1)*offset+"px)");
                //将当前行全部选中
                $("#lyric_fg li").eq(3).nextAll().removeAttr("class");//可以优化
                $("#lyric_fg li").eq(3).nextAll().children("a").removeClass("coverColor").addClass("transparentColor");//可以优化

                $("#lyric_fg li").eq(oLRC.ms.t.length+3).children("a").removeClass("transparentColor").addClass("coverColor");
                $("#lyric_fg li").eq(oLRC.ms.t.length+3).addClass("changeFgColor");
                let left=$(".changeFgColor").find(":first-child").position().left;
                let rightDis=oLRC.ms.c[oLRC.ms.t.length-1].length*12;
                let right=parseFloat(left)+parseFloat(rightDis+"");
                $("#lyric_fg li").eq(oLRC.ms.t.length+3).css("clip","rect(0px,"+Math.ceil(right)+"px,20px,"+Math.ceil(left)+"px)");
                $("#lyric_fg li").eq(oLRC.ms.t.length+3).prevAll().css("clip","");
                //重新设置行号
                lineNo=oLRC.ms.t.length-1;
                rowF=true;
                break;
            }
        }
    }
    //歌词尾**********************************************************************************
    /*
    * 声音进度条滑动处理的不好，需要重新修改--------------修复旧有的功能
    * 1 本机音量变为0时，声音进度条应该调整为0，现在没有任何改变
    * 2 声音进度条滑动时位置定位不准确
    * */
    $(".sound-block").mousedown(function(event){
        let blockDistance,barDistance;
        let e=event || window.event;
        let initY=e.clientY;
        let diffY=$(this).position().top;
        let distance=105-diffY;
        $(document).mousemove(function(event){
            let audio=$("#audio")[0];
            let e=event || window.event;
            let endY=e.clientY;
            let distanceB=distance+initY-endY;
            if(distanceB<12){
                blockDistance=10+"px";
            }else if(distanceB<=95){
                blockDistance=(distanceB-2)+"px";
            }else{
                blockDistance="93px";
            }

            if(distanceB>=0 && distanceB<=95){
                barDistance=distanceB;
            }

            $(".sound-block").css("bottom",blockDistance);
            $(".sound-pro-bar").css({"height":barDistance+"px","background-position-y":(barDistance-617)+"px"});

            if(distanceB<=12){
                $(".sound").removeClass("open-voice").addClass("closed-voice");
                barDistance=0;
            }else{
                $(".sound").removeClass("closed-voice").addClass("open-voice");
                barDistance-=12;
            }
            currentVoicePercent=(barDistance/83).toFixed(2);
            audio.volume=currentVoicePercent;
        });

        $(document).mouseup(function(){
            $(this).off("mousemove");
            $(this).off("mouseup");
        });
    });
    //声音进度条处理
    $(".sound-bar").click(function(event){
        let audio=$("#audio")[0];
        let blockDistance,barDistance;
        let e=event || window.event;
        let x=e.clientY;
        let distanceBottom=105+this.getBoundingClientRect().top-x;
        if(distanceBottom<12){
            blockDistance=10+"px";
        }else if(distanceBottom<=95){
            blockDistance=(distanceBottom-2)+"px";
        }else{
            blockDistance="93px";
        }
        if(distanceBottom>=0 && distanceBottom<=95){
            barDistance=distanceBottom;
        }
        $(".sound-block").css("bottom",blockDistance);
        $(".sound-pro-bar").css({"height":barDistance+"px","background-position-y":(barDistance-617)+"px"});

        if(distanceBottom<=12){
            $(".sound").removeClass("open-voice").addClass("closed-voice");
            barDistance=0;
        }else{
            $(".sound").removeClass("closed-voice").addClass("open-voice");
            barDistance-=12;
        }
        currentVoicePercent=(barDistance/83).toFixed(2);
        audio.volume=currentVoicePercent;
    });


    /**********************************************************************************************************/
    //格式化时间函数
    function timeFormat(time){
        let minutes;
        let seconds;
        if(time>60){
            minutes=Math.floor(time/60);
            seconds=Math.floor(time%60);

            if(minutes<10){
                minutes="0"+minutes;
            }
            if(seconds<10){
                seconds="0"+seconds;
            }
            return minutes+":"+seconds;
        }else{
            minutes="00";
            if(time<10){
                seconds="0"+parseInt(time);
            }else{
                seconds=parseInt(time);
            }
            return minutes+":"+seconds;
        }
    }
    //提取歌曲路径,第一项为歌手名，第二项为歌曲名
    function musicInfo(path) {
        let musicPath=path.split("/");
        musicPath=musicPath[musicPath.length-1].split("-");
        let singerNameList=musicPath[0].split("%20");
        let musicNameList=musicPath[1].split(".")[0].split("%20");
        let singerName="";
        let musicName="";
        let nameList=[];
        for (let i=0;i<singerNameList.length;i++){
            singerName+=singerNameList[i];
        }
        for (let i=0;i<musicNameList.length;i++){
            musicName+=musicNameList[i];
        }
        nameList.push(singerName);
        nameList.push(musicName);
        return nameList;
    }

    function playMode(signal){
        let audio=$("#audio")[0];
        let index;
        audio.volume=currentVoicePercent;
        audio.pause();
        $(".play-paused-common").removeClass("paused-btn").addClass("play-btn");
        //获取播放模式
        let model=$(".model-status").html();
        let musicSrc=$("#audio").attr("src");
        if(model==="single-cycle" || model==="list-cycle"){
            $(".music-load").each(function(){
                if($(this).attr("href")===musicSrc){
                    let pos=$(this).parent().index();
                    if(signal==="pre"){
                        if(pos===0){
                            index=$(".music-load").length-1;
                            return false;
                        }else{
                            index=pos-1;
                            return false;
                        }
                    }else if(signal==="next"){
                        if(pos===$(".music-load").length-1){
                            index=0;
                            return false;
                        }else{
                            index=pos+1;
                            return false;
                        }
                    }else{
                        if(model==="list-cycle"){
                            if(pos===$(".music-load").length-1){
                                index=0;
                                return false;
                            }else{
                                index=pos+1;
                                return false;
                            }
                        }else{
                            index=pos;
                        }
                    }
                }
            });
        }else if(model==="random-play"){
            $(".music-load").each(function(){
                if($(this).attr("href")==musicSrc){
                    index=$(this).parent().index();
                    return false;
                }
            });
            let a=Math.floor(Math.random()*$(".music-load").length);
            while (a==index){
                a=Math.floor(Math.random()*$(".music-load").length);
            }
            index=a;
        }
        //重新设置音频路径
        $("#audio").attr("src",$(".music-load").eq(index).attr("href"));
        let val=$(".music-list-sn").eq(index).attr("value");
        $.ajax({
            url:"/Music/queryLyric",
            async:true,
            data:{
                "index":val,
            },
            dataType:"JSON",
            type:"POST",
            success:function (data) {
                lrc=data.lyric;
                let address=data.songPicAddress;
                $(".play-ico").attr("src",address);
                rollback();
                initLRC(lrc);
            }
        });
        audio.play();
        $(".play-paused-common").removeClass("play-btn").addClass("paused-btn");
        //当前播放音乐在播放列表中的背景颜色处理
        if(temp_pos!=index && temp_pos!=-1){
            $(".music-list-content ol li").eq(temp_pos).removeClass("change-background-color").addClass("init-background-color");
            $(".music-list-content ol li").eq(temp_pos).children("a").removeClass("change-font-color").addClass("init-font-color");
        }
        temp_pos=index;
        $(".music-list-content ol li").eq(index).removeClass("init-background-color").addClass("change-background-color");
        $(".music-list-content ol li").eq(index).children("a").removeClass("init-font-color").addClass("change-font-color");
    }
    //播放或者暂停函数
    function playOrPaused(){
        let audio=$("#audio")[0];
        let musicName=$("#audio").attr("src");
        if(musicName!=""){
            let status=audio.paused;
            if(status){
                audio.play();
                $(".play-paused-common").removeClass("play-btn").addClass("paused-btn");
            }else{
                audio.pause();
                $(".play-paused-common").removeClass("paused-btn").addClass("play-btn");
            }
            //歌词待完善
            //initLRC(lrc);
            updateLRCPro();
        }
    }
    function playProgress(progressStatus){
        let audio=$("#audio")[0];
        let cur_Time =audio.currentTime;
        let totalTime=audio.duration;
        let progress;
        if(progressStatus=="retreat"){
            //后退
            cur_Time-=1;
            if(cur_Time<=0){
                cur_Time=0;
            }
            audio.currentTime=cur_Time;
            updateLRCPro();
        }else if(progressStatus=="goForward"){
            //前进
            cur_Time+=1;
            if(cur_Time>=totalTime){
                cur_Time=totalTime;
            }
            audio.currentTime=cur_Time;
            updateLRCPro();
        }

        let currentTime=timeFormat(cur_Time);
        let leftDistance=cur_Time*477/totalTime;

        let timeRang=audio.buffered;
        if(timeRang.length>0){
            progress=timeRang.end(timeRang.length-1);
        }
        let distance=parseInt(progress+"")*477/totalTime;
        $(".music-currentTime").html(currentTime);
        $(".play-block").css("left",leftDistance+"px");
        $(".play-pro-bar").css("width",(leftDistance+8)+"px");
        $(".play-preload-pro-bar").css("width",(distance+16)+"px");
        updateLRCPro();
    }
    //判断是否可以播放
    $("#audio").bind("canplaythrough",function(){
        let audio=$(this)[0];
        audio.play();
        audio.volume=currentVoicePercent;
        let musicSrc=$(this).attr("src");
        let totalTime=timeFormat(audio.duration);
        let musicName=musicInfo(musicSrc)[1];
        let singerName=musicInfo(musicSrc)[0];
        $(".music-totaltime").html(totalTime);
        $(".pro-music-name").html(musicName);
        $(".pro-singer-name").html(singerName);
        $(".play-paused-common").removeClass("play-btn").addClass("paused-btn");
    });
    //进度条播放进度
    $("#audio").bind("timeupdate",function(){
        playProgress("normal");
    });

    //播放结束时下一首歌曲
    $("#audio").bind("ended",function(){
        playMode("normal");
    });

    /*
    * 锁的开关
    * value:unlock  开锁
    * value:locked  锁死
    * 功能:当为开锁状态时超过2秒钟鼠标没有漂浮到锁的附近时，播放条自动向下隐藏
    * */
    $(".lock-style-common").click(function(){
        if($(".lock-status").text()=="unlock"){
            $(this).removeClass("unlock").addClass("locked")
            $(".lock-status").text("locked");
        }else{
            $(this).removeClass("locked").addClass("unlock")
            $(".lock-status").text("unlock");
        }
    });

    //鼠标浮动上
    $(".play").hover(function(){
        if($(".lock-status").text()=="unlock"){
            $(".play").css("height","60px");
        }
    });

    //鼠标离开时
    $(".play").mouseleave(function(){
        //手动锁死
        if($(".lock-status").text()=="unlock"){
            $(".play").css("height","14px");
            $(".music-list").hide();
            $(".sound-bar").hide();
        }
    });

    //声音大小界面隐藏与展示
    $(".sound").click(function(){
        $(".sound-bar").toggle();
    });

    //播放列表隐藏与展示
    $(".music-list-ico").click(function(){
        $(".music-list").toggle();
    });
    /*切换播放模式
    * model
    * single-cycle 单曲循环
    * random-play  随机播放
    * list-cycle   列表循环
    * */
    $(".common-model").click(function(){
        let val=$(".model-status").text();
        if(val=="list-cycle"){
            $(".model-status").text("single-cycle");
            $(this).removeClass("list-cycle").addClass("single-cycle");
        }else if(val=="single-cycle"){
            $(".model-status").text("random-play");
            $(this).removeClass("single-cycle").addClass("random-play");
        }else if (val=="random-play"){
            $(".model-status").text("list-cycle");
            $(this).removeClass("random-play").addClass("list-cycle");
        }
    });

    //删除全部歌曲
    $(".clear-list-text").click(function(){
        $(".music-list-content ol").empty();
        $(".music-number").html(0);
    });

    $(".clear-list-ico").click(function(){
        $(".music-list-content ol").empty();
        $(".music-number").html(0);
    });
    //删除单个歌曲
    $(".music-delete").click(function(){
       //在移除列表前记录移除列表项所对应的位置
       //let pos=$(this).parent().index();
       //获取删除歌曲之后的列表歌曲数量
       let num=parseInt($(".music-number").html())-1;
       //移除播放列表中的项
       $(this).parent().remove();
       //设置列表歌曲数量
       $(".music-number").html(num);
       //离线需要移除对应的歌词文件，在线不需要这样设置
       //$(".lrc-content").get(pos).remove();
       //设置移除播放列表时播放列表对应的序列
       $(".music-list-sn").each(function(){
           $(this).html($(this).parent().index()+1);
       });
    });
    //关闭播放列表
    $(".close-list-ico").click(function(){
        $(".music-list").hide();
    });
    //上一首歌曲
    $(".pre-btn").click(function () {
        playMode("pre");
    });
    //播放或暂停歌曲
    $(".play-paused-common").click(function(){
        playOrPaused();
    });
    //播放列表播放处理
    $(".common-li").click(function(){
        let audio=$("#audio")[0];
        let index=$(this).children(".music-list-sn").attr("value");
        $.ajax({
            url:"/Music/queryLyric",
            async:true,
            data:{
                "index":index,
            },
            dataType:"JSON",
            type:"POST",
            success:function (data) {
                lrc=data.lyric;
                let address=data.songPicAddress;
                $(".play-ico").attr("src",address);
                rollback();
                initLRC(lrc);
            }
        });
        let musicSrc=$(this).children("a.music-load").attr("href");
        $("#audio").attr("src",musicSrc);
        audio.volume=currentVoicePercent;
        audio.play();
        $(".play-paused-common").removeClass("play-btn").addClass("paused-btn");
        //当前播放音乐在播放列表中的背景颜色处理
        if(temp_pos!=$(this).index() && temp_pos!=-1){
            $(".common-li").eq(temp_pos).removeClass("change-background-color").addClass("init-background-color");
            $(".common-li").eq(temp_pos).children("a").removeClass("change-font-color").addClass("init-font-color");
        }
        temp_pos=$(this).index();
        $(this).removeClass("init-background-color").addClass("change-background-color");
        $(this).children("a").removeClass("init-font-color").addClass("change-font-color");
    });
    //下一首歌曲
    $(".next-btn").click(function(){
        playMode("next");
    });
    /*键盘事件
   * 空格键控制音乐播放或者暂停
   * 向左键控制歌曲后退----
   * 向右键控制歌曲快进
   * 向上键控制声音增大
   * 向下键控制声音减小
   * */
    $(document).keydown(function(event){
        let e=event || window.event;
        let key=e.keyCode || e.which;
        switch (key) {
            case 32:                                     //空格键
                playOrPaused();
                break;
            case 37:                                     //向左键
                playProgress("retreat");
                break;
            case 39:                                     //向右键
                playProgress("goForward");
                break;
            default:
                break;
        }
    });

    //鼠标点击进度条进行快进或者后退
    $(".pro-bar").click(function(event){
        let audio=$("#audio")[0];
        let e=event || window.event;
        let x=e.clientX-this.getBoundingClientRect().left;
        $(".play-block").css("left",x+"px");
        $(".play-pro-bar").css("width",x+16+"px");
        audio.currentTime=(x*audio.duration/477);
        updateLrcLocation();
        updateLRCPro();
        audio.play();
    });

    /*鼠标在播放栏前后滑动----------需要重新修改--------------修复旧有的功能
    *1 鼠标滑动时位置定位不准确
    * */
    $(".play-block").mousedown(function(event){
        let audio=$("#audio")[0];
        let e=event || window.event;
        let initX=e.clientX;
        let diffX=$(this).position().left;
        $(document).mousemove(function(event){
            let e=event || window.event;
            let endX=e.clientX;
            let moveX=endX-initX+diffX;
            if(moveX>=0 && moveX<=477){
                $(".play-block").css("left",moveX+"px");
                $(".play-pro-bar").css("width",(moveX+16)+"px");
                audio.currentTime=(moveX*audio.duration/477);
                updateLrcLocation();
                updateLRCPro();
                audio.play();
            }
        });
        $(document).mouseup(function(){
            $(this).off("mousemove");
            $(this).off("mouseup");
        });
    });
    /**********************************************************************************************************/
});
